package top.z.work.module.system.service;

import top.z.work.framework.common.pojo.R;
import top.z.work.module.system.controller.authorize.vo.AuthorizeCaptchaVO;
import top.z.work.module.system.controller.authorize.vo.AuthorizeInfoVO;
import top.z.work.module.system.controller.authorize.vo.AuthorizeLoginVO;

public interface AuthorizeService {

    /**
     * 生成验证码
     */
    AuthorizeCaptchaVO generate();

    /**
     * 验证码效验
     *
     * @param key  key
     * @param code 验证码
     * @return true：成功  false：失败
     */
    Boolean validate(String key, String code);

    /**
     * 账号密码登录
     *
     * @param login 登录信息
     */
    String login(AuthorizeLoginVO login);

    /**
     * 注销
     */
    void logout();

    /**
     * 获取登录后的授权信息
     */
    R<AuthorizeInfoVO> accountInfo();

}
